package cn.edu.ctbu.finaltest.service.TeacherCourseService.impl;

import cn.edu.ctbu.finaltest.domain.TeacherCourse;
import cn.edu.ctbu.finaltest.exception.REnum;
import cn.edu.ctbu.finaltest.repository.TeacherCourseRepository;
import cn.edu.ctbu.finaltest.service.TeacherCourseService.TeacherCourseService;
import cn.edu.ctbu.finaltest.vo.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class TeacherCourseImplService implements TeacherCourseService {
    @Autowired
    private TeacherCourseRepository teacherCourseRepository;

    /**
     * 查询所有授课信息
     * @return
     */
    public List<TeacherCourse> findAll(){
        return teacherCourseRepository.findAll();
    }
    public R<List<TeacherCourse>> findRAll(){
        List<TeacherCourse> teacherCourses = teacherCourseRepository.findAll();
        R<List<TeacherCourse>> RAll = new R<>();
        RAll.setData(teacherCourses);
        RAll.setMsg(REnum.SUCCESS.getMsg());
        RAll.setCode(REnum.SUCCESS.getCode());
        return RAll;
    }
    /**
     * 通过课号查询授课信息
     * @param cno
     * @return
     */
    public List<TeacherCourse> findByCno(String cno){
        List<TeacherCourse> selectCourses = teacherCourseRepository.findAll();
        List<TeacherCourse> selectCoursesNew = new ArrayList<>();
        for (int i = 0;i < selectCourses.size();i++){
            if (cno.equals(selectCourses.get(i).getCno())){
                selectCoursesNew.add(selectCourses.get(i));
            }
        }
        return selectCoursesNew;
    }
    public R<List<TeacherCourse>> findByRCno(String cno){
        List<TeacherCourse> selectCourses = teacherCourseRepository.findAll();
        List<TeacherCourse> selectCoursesNew = new ArrayList<>();
        for (int i = 0;i < selectCourses.size();i++){
            if (cno.equals(selectCourses.get(i).getCno())){
                selectCoursesNew.add(selectCourses.get(i));
            }
        }
        R<List<TeacherCourse>> RAll = new R<>();
        RAll.setData(selectCoursesNew);
        RAll.setMsg(REnum.SUCCESS.getMsg());
        RAll.setCode(REnum.SUCCESS.getCode());
        return RAll;
    }


    public R<List<TeacherCourse>> findByRTno(String tno){
        List<TeacherCourse> selectCourses = teacherCourseRepository.findAll();
        List<TeacherCourse> selectCoursesNew = new ArrayList<>();
        for (int i = 0;i < selectCourses.size();i++){
            if (tno.equals(selectCourses.get(i).getTno())){
                selectCoursesNew.add(selectCourses.get(i));
            }
        }
        R<List<TeacherCourse>> RAll = new R<>();
        RAll.setData(selectCoursesNew);
        RAll.setMsg(REnum.SUCCESS.getMsg());
        RAll.setCode(REnum.SUCCESS.getCode());
        return RAll;
    }



    public TeacherCourse insert(TeacherCourse selectCourse){
        teacherCourseRepository.save(selectCourse);
        return selectCourse;
    }

    public TeacherCourse update(TeacherCourse selectCourse){
        teacherCourseRepository.save(selectCourse);
        return selectCourse;
    }

    public void deleteId(Integer id){
        teacherCourseRepository.deleteById(id);
    }
}
